import {createStore,applyMiddleware} from 'redux';
import reduxLogger from 'redux-logger';
import {thunk} from 'redux-thunk';
import reduxPromise from 'redux-promise';
import combinedReducers from './reducer';
const init = {
    up:0,
    down:0
}

/**
 * 管理员：修改STORE容器中的公共状态
 * @param state 存储STORE容器中的公共状态【最开始没有的时候赋值初始值】
 * @param action 每一次基于dispatch派发时候，传递进来的行为对象【要求必须具备type属性(派发的行为标识)】
 * @return state return的内容会整体替换STORE容器中的内容
 */
// const reducer = function reducer(state = init, action) {
//     switch (action.type) {
//         case "VOTE_UP":
//             return {...state, up: state.up + 1};
//         case "VOTE_DOWN":
//             //展开运算符是浅克隆，让react知道对象变更了(react内部的Object.is()判断的是引用是否相等，不判断值是否相等)
//             return {...state, down: state.down+1    };
//     }
//     return state;
// }

const store = createStore(combinedReducers,applyMiddleware(reduxLogger,thunk,reduxPromise));

export default store;